Micron Document




Comparison of deep learning software
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
The following tables compare notable software frameworks, libraries, and computer programs for deep learning applications.

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Deep learning software by name

| Software | Creator | Initial release | Software license [ a ] | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | ROCm support [ 1 ] | Automatic differentiation [ 2 ] | Has pretrained models | Recurrent nets | Convolutional nets | RBM / DBNs | Parallel execution (multi node) | Actively developed |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BigDL | Jason Dai (Intel) | 2016 | Apache 2.0 | Yes | Apache Spark | Scala | Scala, Python | | | No | No | | Yes | Yes | Yes | | | Yes |
| Caffe | Berkeley Vision and Learning Center | 2013 | BSD | Yes | Linux , macOS , Windows [ 3 ] | C++ | Python , MATLAB , C++ | Yes | Under development [ 4 ] | Yes | No | Yes | Yes [ 5 ] | Yes | Yes | No | ? | No [ 6 ] |
| Chainer | Preferred Networks | 2015 | BSD | Yes | Linux , macOS | Python | Python | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No [ 7 ] |
| Deeplearning4j | Skymind engineering team; Deeplearning4j community; originally Adam Gibson | 2014 | Apache 2.0 | Yes | Linux , macOS , Windows , Android ( Cross-platform ) | C++ , Java | Java , Scala , Clojure , Python ( Keras ), Kotlin | Yes | No [ 8 ] | Yes [ 9 ] [ 10 ] | No | Computational Graph | Yes [ 11 ] | Yes | Yes | Yes | Yes [ 12 ] | Yes |
| Dlib | Davis King | 2002 | Boost Software License | Yes | Cross-platform | C++ | C++ , Python | Yes | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Flux | Mike Innes | 2017 | MIT license | Yes | Linux , MacOS , Windows ( Cross-platform ) | Julia | Julia | | | Yes | No | Yes | Yes [ 13 ] | Yes | Yes | No | Yes | Yes |
| Intel Data Analytics Acceleration Library | Intel | 2015 | Apache 2.0 | Yes | Linux , macOS , Windows on Intel CPU [ 14 ] | C++ , Python , Java | C++ , Python , Java [ 14 ] | Yes | No | No | No | Yes | No | | Yes | | Yes | Yes |
| Intel Math Kernel Library 2017 [ 15 ] and later | Intel | 2017 | Proprietary | No | Linux , macOS , Windows on Intel CPU [ 16 ] | C/C++, DPC++, Fortran | C [ 17 ] | Yes [ 18 ] | No | No | No | Yes | No | Yes [ 19 ] | Yes [ 19 ] | | No | Yes |
| Google JAX | Google | 2018 | Apache 2.0 | Yes | Linux , macOS , Windows | Python | Python | | | Only on Linux | No | Yes | No | | | | Yes | Yes |
| Keras | François Chollet | 2015 | MIT license | Yes | Linux , macOS , Windows | Python | Python , R | Only if using Theano as backend | Can use Theano, Tensorflow or PlaidML as backends | Yes | No | Yes | Yes [ 20 ] | Yes | Yes | No [ 21 ] | Yes [ 22 ] | Yes |
| MATLAB + Deep Learning Toolbox (formally Neural Network Toolbox) | MathWorks | 1992 | Proprietary | No | Linux , macOS , Windows | C , C++ , Java , MATLAB | MATLAB | No | No | Train with Parallel Computing Toolbox and generate CUDA code with GPU Coder [ 23 ] | No | Yes [ 24 ] | Yes [ 25 ] [ 26 ] | Yes [ 25 ] | Yes [ 25 ] | Yes | With Parallel Computing Toolbox [ 27 ] | Yes |
| Microsoft Cognitive Toolkit (CNTK) | Microsoft Research | 2016 | MIT license [ 28 ] | Yes | Windows , Linux [ 29 ] ( macOS via Docker on roadmap) | C++ | Python ( Keras ), C++ , Command line , [ 30 ] BrainScript [ 31 ] ( .NET on roadmap [ 32 ] ) | Yes [ 33 ] | No | Yes | No | Yes | Yes [ 34 ] | Yes [ 35 ] | Yes [ 35 ] | No [ 36 ] | Yes [ 37 ] | No [ 38 ] |
| MindSpore | Huawei | 2020 | Apache 2.0 | Yes | Linux , Windows , macOS , EulerOS , openEuler , OpenHarmony , Oniro OS , HarmonyOS , Android | C++ , Rust , Julia , Python , ArkTS , Cangjie, Java (Lite) | | | | | | | | | | | | |
| ML.NET | Microsoft | 2018 | MIT license | Yes | Windows, Linux, macOS | C#, C++ | C#, F# | | | | | | | | | | | Yes |
| Apache MXNet | Apache Software Foundation | 2015 | Apache 2.0 | Yes | Linux , macOS , Windows , [ 39 ] [ 40 ] AWS , Android , [ 41 ] iOS , JavaScript [ 42 ] | Small C++ core library | C++ , Python , Julia , MATLAB , JavaScript , Go , R , Scala , Perl , Clojure | Yes | No | Yes | No | Yes [ 43 ] | Yes [ 44 ] | Yes | Yes | Yes | Yes [ 45 ] | No |
| Neural Designer | Artelnics | 2014 | Proprietary | No | Linux , macOS , Windows | C++ | Graphical user interface | Yes | No | Yes | No | Analytical differentiation | No | No | No | No | Yes | Yes |
| OpenNN | Artelnics | 2003 | GNU LGPL | Yes | Cross-platform | C++ | C++ | Yes | No | Yes | No | ? | Yes [ 46 ] | No | No | No | ? | Yes |
| PlaidML | Vertex.AI, Intel | 2017 | Apache 2.0 | Yes | Linux , macOS , Windows | Python , C++ , OpenCL | Python , C++ | ? | Some OpenCL ICDs are not recognized | No | No | Yes | Yes | Yes | Yes | | Yes | Yes |
| PyTorch | Meta AI | 2016 | BSD | Yes | Linux , macOS , Windows , Android [ 47 ] | Python , C , C++ , CUDA | Python , C++ , Julia , R [ 48 ] | Yes | Via separately maintained package [ 49 ] [ 50 ] [ 51 ] | Yes | Yes | Yes | Yes | Yes | Yes | Yes [ 52 ] | Yes | Yes |
| Apache SINGA | Apache Software Foundation | 2015 | Apache 2.0 | Yes | Linux , macOS , Windows | C++ | Python , C++ , Java | No | Supported in V1.0 | Yes | No | ? | Yes | Yes | Yes | Yes | Yes | Yes |
| TensorFlow | Google Brain | 2015 | Apache 2.0 | Yes | Linux , macOS , Windows , [ 53 ] [ 54 ] Android | C++ , Python , CUDA | Python ( Keras ), C / C++ , Java , Go , JavaScript , R , [ 55 ] Julia , Swift | No | On roadmap [ 56 ] but already with SYCL [ 57 ] support | Yes | Yes | Yes [ 58 ] | Yes [ 59 ] | Yes | Yes | Yes | Yes | Yes |
| Theano | Université de Montréal | 2007 | BSD | Yes | Cross-platform | Python | Python ( Keras ) | Yes | Under development [ 60 ] | Yes | No | Yes [ 61 ] [ 62 ] | Through Lasagne's model zoo [ 63 ] | Yes | Yes | Yes | Yes [ 64 ] | No |
| Torch | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | 2002 | BSD | Yes | Linux , macOS , Windows , [ 65 ] Android , [ 66 ] iOS | C , Lua | Lua , LuaJIT , [ 67 ] C , utility library for C++ / OpenCL [ 68 ] | Yes | Third party implementations [ 69 ] [ 70 ] | Yes [ 71 ] [ 72 ] | No | Through Twitter 's Autograd [ 73 ] | Yes [ 74 ] | Yes | Yes | Yes | Yes [ 65 ] | No |
| Wolfram Mathematica 10 [ 75 ] and later | Wolfram Research | 2014 | Proprietary | No | Windows , macOS , Linux , Cloud computing | C++ , Wolfram Language , CUDA | Wolfram Language | Yes | No | Yes | No | Yes | Yes [ 76 ] | Yes | Yes | Yes | Yes [ 77 ] | Yes |
| Software | Creator | Initial release | Software license [ a ] | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | ROCm support [ 78 ] | Automatic differentiation [ 2 ] | Has pretrained models | Recurrent nets | Convolutional nets | RBM / DBNs | Parallel execution (multi node) | Actively developed |

cite-note-license-11. Licenses here are a summary, and are not taken to be complete statements of the licenses. Some libraries may use other libraries internally under different licenses

Comparison of machine learning model compatibility

| Format name | Design goal | Compatible with other formats | Self-contained DNN Model | Pre-processing and Post-processing | Run-time configuration for tuning & calibration | DNN model interconnect | Common platform |
|---|---|---|---|---|---|---|---|
| TensorFlow , Keras , Caffe , Torch | Algorithm training | No | No / Separate files in most formats | No | No | No | Yes |
| ONNX | Algorithm training | Yes | No / Separate files in most formats | No | No | No | Yes |

See also
References

cite-note-22. "Deep Learning — ROCm 4.5.0 documentation". Archived from the original on 2022-12-05. Retrieved 2022-09-27.
cite-note-automatic-differentiation-in-machin-33. citerefatilim-gunes-baydinbarak-a-pearlmutteralexey-andreyevich-raduljeffrey-mark-siskind2015Atilim Gunes Baydin; Barak A. Pearlmutter; Alexey Andreyevich Radul; Jeffrey Mark Siskind (20 February 2015). "Automatic differentiation in machine learning: a survey". arXiv:1502.05767 [cs.LG].
cite-note-44. "Microsoft/caffe". GitHub. 30 October 2021.
cite-note-55. "Caffe: a fast open framework for deep learning". July 19, 2019 – via GitHub.
cite-note-66. "Caffe | Model Zoo". caffe.berkeleyvision.org.
cite-note-77. GitHub - BVLC/caffe: Caffe: a fast open framework for deep learning., Berkeley Vision and Learning Center, 2019-09-25, retrieved 2019-09-25
cite-note-88. Preferred Networks Migrates its Deep Learning Research Platform to PyTorch, 2019-12-05, retrieved 2019-12-27
cite-note-99. "Support for Open CL · Issue #27 · deeplearning4j/nd4j". GitHub.
cite-note-1010. "N-Dimensional Scientific Computing for Java". Archived from the original on 2016-10-16. Retrieved 2016-02-05.
cite-note-1111. "Comparing Top Deep Learning Frameworks". Deeplearning4j. Archived from the original on 2017-11-07. Retrieved 2017-10-31.
cite-note-1212. citerefchris-nicholsonadam-gibsonChris Nicholson; Adam Gibson. "Deeplearning4j Models". Archived from the original on 2017-02-11. Retrieved 2016-03-02.
cite-note-1313. citerefdeeplearning4jDeeplearning4j. "Deeplearning4j on Spark". Deeplearning4j. Archived from the original on 2017-07-13. Retrieved 2016-09-01.{{cite web}}: CS1 maint: numeric names: authors list (link)
cite-note-1414. "Metalhead". FluxML. 29 October 2021.
cite-note-intel-daal-1515. "Intel® Data Analytics Acceleration Library (Intel® DAAL)". software.intel.com. November 20, 2018.
cite-note-1616. "Intel® Math Kernel Library Release Notes and New Features". Intel.
cite-note-1717. "Intel® Math Kernel Library (Intel® MKL)". software.intel.com. September 11, 2018.
cite-note-1818. "Deep Neural Network Functions". software.intel.com. May 24, 2019.
cite-note-1919. "Using Intel® MKL with Threaded Applications". software.intel.com. June 1, 2017.
cite-note-intel-benchmark-2020. "Intel® Xeon Phi™ Delivers Competitive Performance For Deep Learning—And Getting Better Fast". software.intel.com. March 21, 2019.
cite-note-2121. "Applications - Keras Documentation". keras.io.
cite-note-2222. "Is there RBM in Keras? · Issue #461 · keras-team/keras". GitHub.
cite-note-2323. "Does Keras support using multiple GPUs? · Issue #2436 · keras-team/keras". GitHub.
cite-note-2424. "GPU Coder - MATLAB & Simulink". MathWorks. Retrieved 13 November 2017.
cite-note-2525. "Automatic Differentiation Background - MATLAB & Simulink". MathWorks. September 3, 2019. Retrieved November 19, 2019.
cite-note-nnt-2626. "Neural Network Toolbox - MATLAB". MathWorks. Retrieved 13 November 2017.
cite-note-2727. "Deep Learning Models - MATLAB & Simulink". MathWorks. Retrieved 13 November 2017.
cite-note-2828. "Parallel Computing Toolbox - MATLAB". MathWorks. Retrieved 13 November 2017.
cite-note-2929. "CNTK/LICENSE.md at master · Microsoft/CNTK". GitHub.
cite-note-setup-cntk-on-your-machine-3030. "Setup CNTK on your machine". GitHub.
cite-note-3131. "CNTK usage overview". GitHub.
cite-note-3232. "BrainScript Network Builder". GitHub.
cite-note-3333. ".NET Support · Issue #960 · Microsoft/CNTK". GitHub.
cite-note-3434. "How to train a model using multiple machines? · Issue #59 · Microsoft/CNTK". GitHub.
cite-note-3535. "Prebuilt models for image classification · Issue #140 · microsoft/CNTK". GitHub.
cite-note-cntk-ai-3636. "CNTK - Computational Network Toolkit". Microsoft Corporation.
cite-note-cntk-1-3737. "Restricted Boltzmann Machine with CNTK #534". GitHub, Inc. 27 May 2016. Retrieved 30 October 2023.
cite-note-3838. "Multiple GPUs and machines". Microsoft Corporation.
cite-note-3939. "Disclaimer". CNTK TEAM. 6 November 2021.
cite-note-4040. "Releases · dmlc/mxnet". Github.
cite-note-4141. "Installation Guide — mxnet documentation". Readthdocs.
cite-note-4242. "MXNet Smart Device". ReadTheDocs. Archived from the original on 2016-09-21. Retrieved 2016-05-19.
cite-note-4343. "MXNet.js". Github. 28 October 2021.
cite-note-4444. "— Redirecting to mxnet.io". mxnet.readthedocs.io.
cite-note-4545. "Model Gallery". GitHub. 29 October 2022.
cite-note-4646. "Run MXNet on Multiple CPU/GPUs with Data Parallel". GitHub.
cite-note-4747. "Model Types".
cite-note-4848. "PyTorch". Dec 17, 2021.
cite-note-4949. "Falbel D, Luraschi J (2023). torch: Tensors and Neural Networks with 'GPU' Acceleration". torch.mlverse.org. Retrieved 2023-11-28.
cite-note-5050. "OpenCL build of pytorch: (in-progress, not useable) - hughperkins/pytorch-coriander". July 14, 2019 – via GitHub.
cite-note-5151. "DLPrimitives/OpenCL out of tree backend for pytorch - artyom-beilis/pytorch_dlprim". Jan 21, 2022 – via GitHub.
cite-note-auto-5252. "OpenCL Support · Issue #488 · pytorch/pytorch". GitHub.
cite-note-5353. "Restricted Boltzmann Machines (RBMs) in PyTorch". GitHub. 14 November 2022.
cite-note-tensorflow-org-5454. "Install TensorFlow with pip".
cite-note-developers-googleblog-com-5555. "TensorFlow 0.12 adds support for Windows".
cite-note-tf-1-5656. citerefallaire-j-j-kalinowski-t-falbel-d-eddelbuettel-d-2023Allaire, J.J.; Kalinowski, T.; Falbel, D.; Eddelbuettel, D.; Yuan, T.; Golding, N. (28 September 2023). "tensorflow: R Interface to 'TensorFlow'". The Comprehensive R Archive Network. Retrieved 30 October 2023.
cite-note-tensorflow-roadmap-5757. "tensorflow/roadmap.md at master". GitHub. January 23, 2017. Retrieved May 21, 2017.
cite-note-github-5858. "OpenCL support". GitHub.
cite-note-tensorflow-org-5959. "TensorFlow". TensorFlow.
cite-note-github-com-6060. "Models and examples built with TensorFlow". July 19, 2019 – via GitHub.
cite-note-6161. "Using the GPU: Theano 0.8.2 documentation". Archived from the original on 2017-04-01. Retrieved 2016-01-21.
cite-note-6262. "gradient – Symbolic Differentiation — Theano 1.0.0 documentation". deeplearning.net.
cite-note-6363. "Automatic vs. Symbolic differentiation".
cite-note-6464. "Recipes/modelzoo at master · Lasagne/Recipes". GitHub.
cite-note-6565. "Using multiple GPUs — Theano 1.0.0 documentation". deeplearning.net.
cite-note-auto1-6666. "torch/torch7". July 18, 2019 – via GitHub.
cite-note-6767. "GitHub - soumith/torch-android: Torch-7 for Android". GitHub. 13 October 2021.
cite-note-6868. "Torch7: A MATLAB-like Environment for Machine Learning" (PDF).
cite-note-jtorch-6969. "GitHub - jonathantompson/jtorch: An OpenCL Torch Utility Library". GitHub. 18 November 2020.
cite-note-7070. "Cheatsheet". GitHub.
cite-note-7171. "cltorch". GitHub.
cite-note-7272. "Torch CUDA backend". GitHub.
cite-note-7373. "Torch CUDA backend for nn". GitHub.
cite-note-7474. "Autograd automatically differentiates native Torch code: twitter/torch-autograd". July 9, 2019 – via GitHub.
cite-note-7575. "ModelZoo". GitHub.
cite-note-7676. "Launching Mathematica 10". Wolfram.
cite-note-7777. "Wolfram Neural Net Repository of Neural Network Models". resources.wolframcloud.com.
cite-note-7878. "Parallel Computing—Wolfram Language Documentation". reference.wolfram.com.
cite-note-7979. "Deep Learning — ROCm 4.5.0 documentation". Archived from the original on 2022-12-05. Retrieved 2022-09-27.